The present invention is generally related to the field of network printing and, more particularly, is related to a system and method for network printing using a peer hybrid printing protocol.
In printing documents from client computers and other devices to network printers, various printing protocols are used. Three such typical printing protocols employed include client-server printing, server-side-rendering (SSR) client-server printing, and peer-to-peer printing. These protocols are used by the various devices on the network to cause the printing of a particular document from the client. Such devices may include, for example, one or more clients, a queue server, a print server, and a printer, etc.
To print a document using client-server printing, for example, an application in a client first makes graphical device interface (GDI) calls to the operating system in the client. The operating system then creates enhanced meta file data (EMF data) from the GDI calls that are handed to a printer driver. The printer driver then renders the EMF data into printer ready bits (PRB) that form a print job. The print job is applied to the operating system to be transmitted over the network to the queue server for printing.
The queue server then receives the print job and places it in a queue associated with a particular printer. When the printer is ready to receive the print job, the queue server transmits the print job over the network to the print server. The print server then applies the print job to the printer for printing. Unfortunately, the client-server approach requires the entire document to be transmitted on the network twice, thereby consuming a potentially large amount of network bandwidth.
In server-side-rendering, (SSR) client-server printing, an application in a client first makes GDI calls to the operating system in the client. The operating system then creates EMF data from the GDI calls. The EMF data is transmitted over the network to a queue server. In the queue server, the EMF data is placed in a queue for printing. When the document is to be printed, the corresponding EMF data is applied to a printer driver in the queue server that renders the EMF data into printer ready bits (PRB) that form a print job. When the printer is ready to receive the print job, the print job is applied to the operating system in the queue server to be transmitted over the network to the print server for printing. The print server then applies the print job to the printer for printing. Unfortunately, the SSR client-server approach also requires the entire document to be transmitted on the network twice, once as EMF data and once as printer ready bits. This results in the consumption of a potentially large amount of network bandwidth. In addition, the centralization of the printer driver on the queue server can stress the computing capacity of the queue server to effectively render the EMF data into printer ready bits (PRB). This is especially a concern given that a number of printer drivers may be placed on the queue server to service a number of printers.
In peer-to-peer printing, an application in a client first makes GDI calls to the operating system in the client. The operating system then creates EMF data from the GDI calls that are handed to a printer driver in the client. The printer driver then renders the EMF data into printer ready bits (PRB) that form a print job. The print job is applied to the operating system in the client to be transmitted over the network directly to the print server for printing.
When the print server is ready to receive data, the operating system in the client transmits the print job to the print server. The print server then applies the print job to the printer for printing. Although, the peer-to-peer printing approach only requires the entire document to be transmitted on the network once, the peer-to-peer approach does not facilitate centralized printer control or queuing.
In light of the foregoing, the present invention provides for a system and method for network printing of a document. In one embodiment, the network includes a client coupled to the network, the client having a first processor coupled to first local interface and a first memory coupled to the first local interface. The client also includes send job logic stored on the first memory and executable by the first processor. The send job logic includes logic to generate a print job ticket associated with a full print job, and logic to transmit the print job ticket to a queue server that is coupled to the network.
The queue server includes a second processor coupled to second local interface and a second memory coupled to the second local interface. The queue server also includes print queue logic stored on the second memory and executable by the second processor. The print queue logic includes logic to place the print job ticket in a queue in the queue server, and logic to transmit the print job ticket from the queue server to a print server that is coupled to the network.
The print server has a third processor coupled to third local interface and a third memory coupled to the third local interface. The print server further includes print server logic stored on the third memory and executable by the third processor. The print server logic comprises logic to determine an address of the client on the network from the print job ticket received from the queue server, logic to transmit a request for a full print job to the client, and logic to apply the full print job received from the client to the printer.
In addition to the above system, further aspects of the present invention include the functionality of each of the client, queue server, and print server related to the printing protocol employed to print a document on a network printer.
The present invention may also be viewed as a method for printing on a network. Broadly stated, the method comprises the steps of: generating a print job ticket in a client, the print job ticket being associated with a full print job; transmitting the print job ticket to a queue server; placing the print job ticket in a queue in the queue server; transmitting the print job ticket from the queue server to a print server; transmitting a request for a full print job from the print server to the client; and, transmitting the full print job from the client to the print server in response to the request.
In addition to the above method, further aspects of the present invention include the steps taken with reference to the individual client, queue server, and print server related to the printing protocol employed to print a document on a network printer.
The systems and method of the present invention provide several advantages, such as, printing documents on a network printer while using less bandwidth and at the same time retaining centralized control over the printing functions of the network.
Other features and advantages of the present invention will become apparent to a person with ordinary skill in the art in view of the following drawings and detailed description. It is intended that all such additional features and advantages be included herein within the scope of the present invention.